#pragma once

#include <vector>
#include <boost/numeric/ublas/vector.hpp>

class Track {
public:

	double Freq;		// frequency of the sinusoidal track current (Hz)
	double Current;		// magnitude of the current (A)
	std::string Filename; // filename of the track to loads

	// list of 2 element vectors
	typedef std::vector<boost::numeric::ublas::vector<double>> point_list;

public:
	Track();

	void Load();

	void Draw();

	void Print();

	const point_list& GetData() const { return mPath; }

	// return a 2 element vector
	boost::numeric::ublas::vector<double> GetStartPosition() const;

	// return a 2 element vector
	boost::numeric::ublas::vector<double> GetStartHeading() const;

	boost::numeric::ublas::vector<double> GetFieldAt(const boost::numeric::ublas::vector<double> &p) const;

private:
	point_list mPath;
};
